//
//  HXSDefines.h
//
//  Created by Apple on 2019/8/15.
//  Copyright © 2019年 Apple. All rights reserved.
//

#ifndef HXSDefines_h
#define HXSDefines_h
#import <YYCategories/YYCategories.h>

typedef NS_ENUM(NSInteger, HXSStatusCode){
    //TODO: for test
    
    HXSSuccess = 10000,
    HXSFailure = 10001,
    HXSNetworkError = 10002,
    HXSTestEnum = 1003,
};

typedef NS_ENUM(NSUInteger, HXSNavigationType) {
    HXSNavigationTypeWhite,
    HXSNavigationTypeCustom,           // 支持设置颜色 通过naviBgColor设置
    HXSNavigationTypeH5Custom,         // 支持设置颜色 通过naviBgColor设置 采用深色箭头和X
    HXSNavigationTypeH5Transmutability // 支持设置颜色 通过naviBgColor设置 采用白色箭头和X  导航条透明有穿透效果
};

#pragma mark - 全局适配宏

#define kRatio (kScreenWidth / 375)
/// 将宽度乘以比率,如需额外适配可修改
#define kRWidth(R) (R)*kRatio
/// 将高度乘以宽度比率,如需额外适配可修改
#define kRHeight(R) kRWidth(R)

//判断是否是ipad
#define HXS_isPad ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
//判断iPhoneX
#define HXS_IS_IPHONE_X ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !HXS_isPad : NO)
//判断iPHoneXr
#define HXS_IS_IPHONE_Xr ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) && !HXS_isPad : NO)
//判断iPhoneXs
#define HXS_IS_IPHONE_Xs ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !HXS_isPad : NO)
//判断iPhoneXs Max
#define HXS_IS_IPHONE_Xs_Max ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) && !HXS_isPad : NO)

#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? (HXS_IS_IPHONE_X || HXS_IS_IPHONE_Xr ||  HXS_IS_IPHONE_Xs || HXS_IS_IPHONE_Xs_Max) : NO)

/// 状态栏高度
#define kStatusBarHeight (iPhoneX ? 44.f : 20.f)
/// 导航栏高度
#define kNavigationBarHeight (iPhoneX ? 88.f : 64.f)
/// 导航栏高度（不包括状态栏）
#define kNaviBarHeight 44.0f
/// 底部安全区域
#define kBottomSafeAreaHeight (iPhoneX ? 34.f : 0)

/// 分割线高度
#define kSeperateLineHeight         0.5 * kRatio


#pragma mark - 颜色宏

#define HXSUI_Color_NavTitle       UIColorHex(0x4F577C)  ///<  导航栏标题颜色
#define HXSUI_Color_MainRed        UIColorHex(0xFF3E5B)  ///<  主红颜色
#define HXSUI_Color_TheOnePoint_Red       UIColorHex(0xA40F25)  /// TheOnePoint 红色
#define HXSUI_Color_TheOnePointPay_Red       UIColorHex(0xD71920)  /// TheOnePoint 红色
#define HXSUI_Color_TitleGray      UIColorHex(0x141E50)  ///<  cell标题 灰色
#define HXSUI_Color_TitleBlack     UIColorHex(0x302B2B)  ///<  黑色
#define HXSUI_Color_ContentBlack   UIColorHex(0x838080)  ///<  黑色
#define HXSUI_Color_ValueGray      UIColorHex(0xA1A5B9)  ///<  cell值 灰色
#define HXSUI_Color_TipRed         UIColorHex(0xFF3B57)  ///<  提示文字 红色
#define HXSUI_Color_LineGray       UIColorHex(0xE7E8ED)  ///<  分割线 灰色
#define HXSUI_Color_AlertGray      UIColorHex(0xEEEEF1)  ///<  弹窗分割线 灰色

#define HXSUI_Color_Green           UIColorHex(0x00CCC0)  ///<  蓝色
#define HXSUI_Color_Blue           UIColorHex(0x4D7BFE)  ///<  蓝色
#define HXSUI_Color_103567           UIColorHex(0x103567)  ///<  浅蓝色
#define HXSUI_Color_TableBgGray    UIColorHex(0xF3F3F6)  ///<  列表(Table)背景 灰色
#define HXSUI_Color_ErrorMsgRed    UIColorHex(0xFC0100)  ///<  error message
#define HXSUI_Color_White          UIColorHex(0xFFFFFF)  ///<  error message
#define HXSUI_Color_UISwitchOnBlue          UIColorHex(0x4D7BFE)  ///<  UISwitch ON
#define HXSUI_Color_UISwitchGray            UIColorHex(0xD6D5D5)  ///<  UISwitch ON
#define HXSUI_Color_PatternGray             UIColorHex(0xEEEEF1)
#define HXSUI_Color_White          UIColorHex(0xFFFFFF)  ///<  白色
#define HXSUI_Color_NavBlack       UIColorHex(0x4A4A4A)  ///<  黑色
#define HXSUI_Color_QRBlack        UIColorHex(0x000000)  ///<  黑色
#define HXSUI_Color_TipOrange      UIColorHex(0xFFAA8A)  ///<  橘色提示
#define HXSUI_Color_SuccessRed     UIColorHex(0xEE2F53)  ///<  成功页红色


#define HXSUI_Color_ShadowColor             [UIColor colorWithWhite:0 alpha:0.08] // 卡片阴影颜色

#pragma mark - 字体宏

#define kFont(F) [UIFont fontWithName:@"The1Official-Regular" size:F]
#define kLightFont(F) [UIFont fontWithName:@"The1OfficialLight" size:F]
#define kBoldFont(F) [UIFont fontWithName:@"The1Official-Bold" size:F]

//#define kFont(F) [UIFont systemFontOfSize: F]
//#define kBoldFont(F) [UIFont boldSystemFontOfSize:F]
#define FontBean [HXSFontBean shareBean]

#define HXSUI_Font10 kFont(10*kRatio)
#define HXSUI_Font12 kFont(12*kRatio)
#define HXSUI_Font13 kFont(13*kRatio)
#define HXSUI_Font14 kFont(14*kRatio)
#define HXSUI_Font15 kFont(15*kRatio)
#define HXSUI_Font16 kFont(16*kRatio)
#define HXSUI_Font17 kFont(17*kRatio)
#define HXSUI_Font18 kFont(18*kRatio)
#define HXSUI_Font20 kFont(20*kRatio)
#define HXSUI_Font21 kFont(21*kRatio)
#define HXSUI_Font23 kFont(23*kRatio)
#define HXSUI_Font24 kFont(24*kRatio)

#define HXSUI_BoldFont12 kBoldFont(12*kRatio)
#define HXSUI_BoldFont14 kBoldFont(14*kRatio)
#define HXSUI_BoldFont15 kBoldFont(15*kRatio)
#define HXSUI_BoldFont16 kBoldFont(16*kRatio)
#define HXSUI_BoldFont17 kBoldFont(17*kRatio)
#define HXSUI_BoldFont18 kBoldFont(18*kRatio)
#define HXSUI_BoldFont20 kBoldFont(20*kRatio)
#define HXSUI_BoldFont22 kBoldFont(22*kRatio)
#define HXSUI_BoldFont24 kBoldFont(24*kRatio)
#define HXSUI_BoldFont28 kBoldFont(28*kRatio)
#define HXSUI_BoldFont30 kBoldFont(30*kRatio)
#define HXSUI_BoldFont32 kBoldFont(32*kRatio)
#define HXSUI_BoldFont34 kBoldFont(34*kRatio)
#define HXSUI_BoldFont36 kBoldFont(36*kRatio)
#define HXSUI_BoldFont48 kBoldFont(48*kRatio)

#define HXSUI_NavigationBarHeight (HXSUI_NaviBarHeight + kStatusBarHeight)
#define HXSUI_NaviBarHeight      70 * kRatio  // 导航条高度不算状态栏

#define HXSUI_BackImage                 @"nav_back"         // 导航条返回按钮图片
#define HXSUI_BackImage_White           @"nav_back_white"   // 导航条返回按钮图片白色
#define HXSUI_CloseImage                @"nav_close"        // 导航条关闭按钮图片
#define HXSUI_CloseImage_White          @"nav_close_white"  // 导航条关闭按钮图片白色

#define HXSHOST                  @"cjdfintech.com"  // 在web及https证书验证环节有使用勿修改及删除
#define HXSScheme                @"open.dolphinwallet"
#define HXSScheme1               @"open.dolfinwallet"   //电商跳入需要

#define HXSVid                   @"1001001"

// 字符串判空
#define isEmptyString(s)  (((s) == nil) || ([(s) stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].length == 0) || [(s) isEqual:[NSNull null]])

//#define StringActionConfig

#define HXSSafeBlock(block,...) if(block){block(__VA_ARGS__);};

#endif /* HXSDefines_h */
